using System;
using System.Collections.Generic;
using PortalFolia.Cadastro;
using PortalFolia.Data.Objetos;

namespace PortalFolia.Servicos.Controladores
{
    public class ControladorUsuarios
    {
        private CadastroUsuario _cadastroUsuario;

        public ControladorUsuarios()
        {
            _cadastroUsuario  = new CadastroUsuario();
        }

        public Usuario Inserir(Usuario usuario)
        {
            return _cadastroUsuario.Inserir(usuario);
        }

        public Usuario Atualizar(Usuario usuario)
        {
            return _cadastroUsuario.Atualizar(usuario);
        }

        public void Excluir(int id)
        {
            _cadastroUsuario.Excluir(id);
        }

        public IList<Usuario> ObterTodos()
        {
            return _cadastroUsuario.ObterTodos();
        }

        public Usuario ObterPorId(int id)
        {
            return _cadastroUsuario.ObterPorId(id);
        }

        public bool VerificarLogin(string login)
        {
            return _cadastroUsuario.VerificarLogin(login);
        }

        public bool VerificarEmail(string email)
        {
            return _cadastroUsuario.VerificarEmail(email);
        }

        public Usuario Logar(string nomeUsuario)
        {
            return _cadastroUsuario.Logar(nomeUsuario);
        }

        public Usuario ObterUsuarioPorEmail(string email)
        {
            return _cadastroUsuario.ObterUsuarioPorEmail(email);
        }

        public Usuario RecuperarSenha(string email)
        {
            Usuario usuario = new Usuario();
            Random rnd = new Random();

            usuario = _cadastroUsuario.ObterUsuarioPorEmail(email);

            if (usuario != null)
            {
                /*--------------------------------Gerando nova Senha-------------------------------*/

                string novaSenha = "";
                for (int i = 0; i <= 10; i++)
                {
                    novaSenha = novaSenha + rnd.Next(0, 100);
                }

                usuario.Senha = novaSenha;
                usuario = _cadastroUsuario.Atualizar(usuario);

                /*------------------------Enviando para o Usuario a nova Senha---------------------*/
                // Via Email ou SMS
                /*---------------------------------------------------------------------------------*/
            }

            return usuario;
        }
    }
}